#ifndef jolfs_volume_h_
#define jolfs_volume_h_

#include <string>
#include <vector>

namespace jolfs
{
	class Volume
	{
	public:
		
	  // CONSTRUCTORS
	  Volume();
	  Volume(const std::string& name);

	  // ACCESSORS
	  const std::string& name() const;

	  // INTERFACES
	  
	  // 
	  // Called when we shutdown the volume.
	  virtual void shutdown() {};
	  

	private:
		
		// DATA
		std::string     name_;
	};

	typedef std::vector<Volume*> VolumeSeq;

	//--------------------------------------------------
	//                  I N L I N E S
	//--------------------------------------------------
	inline Volume::Volume() {}

	inline Volume::Volume(const std::string& name) :
	  name_(name)
	{
	}


	inline const std::string& Volume::name() const
	{
		return name_;
	}
}

#endif
